The present invention is directed to generating look-up tables representative of printer characteristics to enable the conversion of colors defined in a first color space to colors defined in the printer color space, and more particularly, to a method and apparatus for selecting nodes of a look-up table so that the selected nodes are positioned within regions of the color space transformation to provide increased color precision for those selected regions.
In digital printing, a customer or submitted job is converted into a printable job via a Raster Input Processor (RIP). One of the functions contained in the RIP is the conversion from the color space defined within the customer job to that of the color space of the printing device.
The generation of color documents can be thought of as a two step process: first, the generation of the image by means of scanning an original document with a color image input terminal or scanner or, alternatively, creating a color image on a work-station operated in accordance with a color image creation program; and secondly, printing of that image with a color printer in accordance with the colors defined by the scanner or computer generated image. Scanner densitometric RGB (red, green, blue) channel output is commonly transformed to the CIE XYZ color space or a color space that is a transformation of the CIE XYZ color space. In the case of computer generated images, color defined by the user at the user interface of a work station can be defined or transformed to a color space that is a transform of the CIE XYZ color space. The CIE XYZ color space and its transformations can be thought of as a xe2x80x9cdevice independentxe2x80x9d color space in that the color spaces unambiguously define color information that is not limited by the luminance dynamic range and color gamut of any physically realizable device.
Printers often have an output which can be defined as existing in a color space called CMYK (cyan-magenta-yellow-key or black) which is uniquely defined for the printer by its capabilities and colorants. Printers operate by the addition of multiple layers of ink or colorant in layers to a page. The response of the printer tends to be relatively non-linear. These colors are defined for a particular device, and accordingly reference is made to the information as being xe2x80x9cdevice dependent.xe2x80x9d Thus, while a printer receives information in a device independent color space, it must convert that information to print in a device dependent color space, which reflects the gamut or possible range of colors of the printer.
The desirability of operating in a device independent color space with subsequent conversion to a device dependent color space is well known, as shown by U.S. Pat. No. 4,500,919 to Schreiber; U.S. Pat. No. 2,790,844 to Neugebauer; and U.S. Pat. No. 4,275,413 to Sakamoto all of which are hereby incorporated by reference. There are many methods of conversion between color spaces, all of which begin with the measurement of printer response to certain input values. Commonly, a printer is driven with a set of input values reflecting color samples throughout the printer gamut, the color samples are printed in normal operation of the printer.
In U.S. Pat. No. 4,275,413 to Sakamoto, the information derived is placed into look-up tables, stored in a memory, perhaps ROM memory or RAM memory where the look-up table relates input color space to output color space. The look-up table is commonly a three-dimensional table since color is defined with three variables. However, while the preceding is true, it is possible to have color spaces with less than three dimensions or more than three dimensions.
In an RGB color space, at a scanner or computer, space can be defined as three dimensional with black at the origin of a three dimensional coordinate system 0, 0, 0, and white at the maximum of a three dimensional coordinate system which an 8-bit system, would be located at 255, 255, 255. Each of the three axes radiating from the origin point therefore respectively define red, green, and blue. A similar construct can be made for the printer, with axes representing cyan, magenta, and yellow. In the 8-bit system suggested, there will be, however, over 16 million possible colors (2563). Thus, there are clearly too many values for a 1:1 mapping of RGB to CMY. Accordingly, as proposed in U.S. Pat. No. 4,275,413 to Sakamoto, only a relatively small number of samples are used to do the mapping from RGB to CMY, perhaps on the order of 1,000 (although as few as 500 and as many as 5,000 are also known to be used). Therefore, look-up tables consist of a set of values which could be said to be the intersections for corners of a set of cubes mounted on top of one another. Colors falling within each cubic volume can be interpolated from the measured values, through many methods including tri-linear interpolation, tetrahedral interpolation, polynomial interpolation, linear interpolation, and any other interpolation method depending on the desired speed and accuracy of the result.
Another method derives a value at a desired location as a function of all (or a significant set of) measured color values. One way of doing this is to use Shepard""s Method (see, for example xe2x80x9cShepard""s Method of xe2x80x98Metric Interpolationxe2x80x99 to Bivariate and Multivariate Interpolationxe2x80x9d by W. Gordon and J. Wixom, Mathematics of Computation, Vol. 32, No. 141, January 1978, pp. 253-264). Shepard""s Method suggests that a vector can be thought of as defining the difference between an asked-for color which was directed to a printer and the printed color. Then, for any other point in a color space which is desired, that point can be thought of as a vector quantity, derived by averaging over the space all the vectors, each vector weighted by a function which decreases its effect on the vector as that vector is further and further away from the point coloring question.
Alternatively the method of Po-Chieh Hung, xe2x80x9cColorimetric Calibration for Scanners and Mediaxe2x80x9d, SPIE, Vol. 1448, Camera and input Scanner System, (1991), describes a method of inverse tetrahedral interpolation, to the same effect as the described Shepard""s Method (see also U.S. Pat. No. 5,296,923 to Hung, hereby incorporated by reference for its teachings). A requirement of this method is that the color space be segmented into a set of non-overlapping, space-filling tetrahedrons. This segmentation requirement is fulfilled by using only data from a full rectangular array of points, where it is easy to define the mesh of points which define the tetrahedrons.
Other examples of color printer calibration and color conversion processes include U.S. Pat. Nos. 5,689,350, 5,592,591, 5,471,324 to Rollston; U.S. Pat. Nos. 5,594,557, 5,528,386, 5,483,360, 5,416,613, and 5,305,119 to Rollston et al.; U.S. Pat. No. 5,581,376 to Harrington; U.S. Pat. Nos. 5,787,193 and 5,649,072 to Balasubramanian; U.S. Pat. No. 5,739,927 to Balasubramanian et al.; U.S. Pat. No. 5,307,182 to Maltz; and U.S. Pat. No. 5,734,802 to Maltz et al., all of which are hereby incorporated by reference for their teachings.
Thus, color conversion therefore consists of mapping points from a three-dimensional color space to a three-dimensional or four-dimensional color space. This mapping depends on the physical properties of a marking device or printer system which is typically non-linear. An approach to performing color conversion is to use a coarse three-dimensional look-up table and interpolation for colors not existing at a node of the look-up table, which provides an arbitrary mapping between different devices. The use of interpolation reduces the size of the table so that large amounts of memory are not required by the system to store a large number of sample points which must then be used in the color conversion process. It has been found that by using a larger number of nodes causes the overall system operation to operate at an undesirably slow level. However, limiting the amount of nodes in a look-up table, so that an acceptable processing speed is obtained, increases the amount of interpolation processing which is necessary. In turn, the increased use of interpolation increases the chance of inaccurate color conversion.
Therefore, it has been determined to be beneficial to provide a manner of increasing the amount of nodes located within a color space to thereby decrease inaccuracies due to interpolation, while at the same time maintaining operation speeds which will allow for substantially real-time print processing.
The present invention contemplates a new and improved method and apparatus for increasing the precision of a color look-up table used to transform an image from an input color space to a device-dependent print engine color space. Initially, a look-up table is generated having nodes that will be used in the transformation of image signals from the input color space to the device-dependent print engine color space. An image file which contains information of the image to be printed is interrogated to determine the distribution of color within that image color space. Thereafter parameters which are to be followed during the transformation of the image are determined. A subset of nodes from the look-up table are selected to be active during the image transformation processing based on the interrogation of the image file and the input parameters. Thereafter, the processing of the image from the input color space to the device-dependent print engine color space is undertaken using the selected nodes.
According to another aspect of the present invention, the look-up table is generated with a larger number of nodes larger than will be used in the image processing of a single image.
With attention to yet another aspect of the present invention, the interrogation of the image file, the receipt and determination of parameters, the selection of the subset of nodes based on the interrogation, and the parameters as well as the processing of the image are accomplished in substantially real time.
With still yet attention to another aspect of the present invention, the parameters selected can be based on customer-specified parameters input into the processing system.
A principal advantage of the present invention is improving the precision with which color from a first input color space is converted to output color of a second color space.
Another advantage of the invention resides in allowing the reallocation of active nodes corresponding to images color distribution within the print engine""s color gamut.
Still another advantage of the invention is providing a better image detail for images of low, medium or high key (black).
Still other advantages and benefits of the invention will become apparent to those skilled in the art upon a reading and understanding of the following detailed description.